<?php
class Arm_Validate_Repassword extends Zend_Validate_Abstract
{
    const NOT_PASSWORD = 'notPassword';
    
    const NOT_TRUE = 'notTrue';
    
    /**
     * Сообщения
     * 
     * @var array
     */
    protected $_messageTemplates = array(
        self::NOT_PASSWORD => "Не веденный пароль" , 
        self::NOT_TRUE => "Вы ошиблись в повторе пароля"
    );
    
    /**
     * Имя поля, которое содержит сам паспорт
     * 
     * @var string
     */
    private $_passwordFieldName = null;
    
    /**
     * Конструктор
     * 
     * @param string $passwordFieldName имя поля паспорта
     */
    public function __construct ($passwordFieldName = 'password')
    {
        $this->_passwordFieldName = $passwordFieldName;
    }
    
    /**
     * Проверка
     * 
     * @param string $value
     */
    public function isValid ($value)
    {
        $value = (string) $value;
        if (false === isset($_REQUEST) or array_key_exists($this->_passwordFieldName, $_REQUEST) === false) {
                $this->_error(self::NOT_PASSWORD);
                return false;
        }
        $repassword = (string) $_REQUEST[$this->_passwordFieldName];
        if ($value === $repassword) {
            return true;
        } else {
            $this->_error(self::NOT_TRUE);
            return false;
        }
    }
}